Filecoin Documentation - 1


Posted by Kled on 2020-12-17

https://docs.filecoin.io/
https://discuss.filecoin.io/

What is Filecoin

Filecoin主要是用戶付費給礦工, 請礦工存儲資料, 使得存儲價格不受任何一間公司的控制,
Filecoin區塊鏈記錄了要發送和接受FIL的交易, 以及來自存儲礦工的證明
1

對於Client

用戶可以通過選擇最適合其存儲需求的礦機, 在成本與速度之間選擇自己喜歡的折衷方案
用戶可以隨時查看區塊鏈上的證據, 來驗證其文件是否正確存儲

對於Miner

Miner賺錢是為互聯網貢獻有用的存儲空間, 而不是因為完成浪費的計算證明
存儲商Follow Filecoin協議以後, 就可以訪問整個市場, 不需要設計自己的API以及宣傳自己

Web3

去中心化的Web架構, 降低大公司進行審查的風險, 降低了服務遭受攻擊的脆弱性

Why Filecoin

Open market

礦工只需要有網路, 一點點的儲存空間, 減少進入門檻 (Kled : 這邊看起來完全沒有做到)

Competitive prices

價格由市場供需決定, 而不是被公司定價 (Kled : 這邊必須研究一下是否價格有競爭力)

Reliable storage

透過PoST來證明資料有被良好的儲存著

Self-healing

Filecoin網路會不斷驗證文件是否正確存儲, 並且會檢測出故障的礦工, 並將其文件重新分發給可靠的礦工

Verifiable traces

自我修復的過程中, Filecoin會生成可驗證的traces, 客戶可以有效地掃描這些traces, 確認其文件已正確存儲

Reputation, not marketing

根據追蹤區塊鏈上的紀錄來證明其可靠性

Choice of tradeoffs

用戶可以在成本, 複製的份數, 速度決定要採用甚麼方案, 而且可以將檔案分散給多個礦工做儲存

Puts empty storage to use

礦工可以自我管理存儲, 無須人工監督即可獲取Filecoin

Censorship resistance

沒有審查制度, 不會強迫刪除文件或保留

Useful blockchain

不是執行浪費的計算而獲得獎勵

Provieds storage to other blockchains

為其他區塊鏈提供儲存, 其他區塊鏈只能儲存少量數據, 未來將在Filecoin添加機制, 使Filecoin區塊鏈可以與其他區塊鏈的交易進行相互操作

Content addressing

Content不是透過網址來獲得, 不論data被誰託管, 都可以獲得, 當文件變的流行的時候, 可以通過大量機器來快速分發文件, 這樣的好處是中央儲存式的架構, 會因為大量的access而超載

Content distribution network

檢索礦工是負責去把data取出給需要下載檔案的user, 透過先下載popular的檔案並且分給靠近的users, 檢索礦工是透過流暢的網路以及下載檔案快速來賺錢

Single protocol

不會因為服務或任何有不同的協議, 不會有不同的API的問題

No lock-in

遷移到其他存儲商變得更容易, 因為都是相同的API, 除此之外可以直接從指定的礦工去下載另外一個礦工的檔案, 而不用用戶下載後再重新上傳, 傳統的存儲提供商通過降低存儲文件的成本來鎖定用戶, 但獲取文件的成本卻很高(AWS), Filecoin礦工會盡可能低的價格盡快向用戶提供文件

Open source code

存儲提供商不必開發自己的軟件來管理

Active community

擁有活耀的貢獻者社區

How Filecoin Works

Network

Filecoin是由對等方以不同方式參與而形成的分布式對等(Peers)網路
通過secure channels 溝通, 並發布信息到網路, 彼此之間傳輸數據並發現其他Peers

Filecoin Nodes

Filecoin Nodes或Filecoin Client是同步區塊鏈並驗證每個block中消息(message)的對等點, 一旦應用, 就會提供global state, 節點可以管理Filecoin錢包並在上面接收FIL
Filecoin Node is a low-level task

Filecoin miners

miner透過執行不同類型的交易, 並將新的區塊加到chain中(每30s)來向網路提供服務, 以換取FIL獎勵
運行miner是一項技術含量很高的任務, 並具有強大的硬件要求, 需要完成必要的證明

Deals

Filecoin有兩種主要的交易類型 : storage deals and retrieval deals
一旦交易開始, 礦工會將數據存儲, 並且反覆的證明, 以便他可以收集獎勵, 否則礦工將被削減並失去FIL
檢索交易是Client和檢索礦工 (可以同時是存儲礦工) 之間的協議, 以提取存儲在網路中的數據, 與存儲交易不同, 這些交易是通過使用支付渠道來支付

Proofs

存儲礦工必須

  • 存儲客戶提交的數據
  • 在交易的整個生命周期內保障數據
    Filecoin Proof System
    PoRep(Proof Of Replication), 礦工收到data後必須encode根據他們的physical storage使得其他miner無法複製,
    所以相同的兩筆數據的交易無法使用相同的磁碟進行存儲, 這個證明必須在sealing完成後提交
    一旦交易成立後, 在lifetime裡面, miner都必須使用PoSt(Proof of Spacetime)證明還保有資料, Client和其他miner會持續的verify that proofs, 並懲罰不履行交易的礦工

Gas Fees

Gas是執行交易證明要用到的交易費用, 傳統的幣是透過調整GasFee來決定處理該交易的優先順序, Filecoin的工作原理類似, 只是需要多燃燒補償網路的資源消耗, 因為所有節點都需要驗證消息
Filecoin的消耗費用是由動態BaseFee給出的, 會根據塊大小自動進行調整

  • GasUsage : 消息執行實際消耗的Gas, 當前協議不知道一條消息在執行前將消耗多少Gas, 但是可以對其進行估計
  • BaseFee : 執行每條消息所消耗的每單位Gas, 以attoFIL / Gas為單位
  • GasLimit : 發送者可以指定消息執行量的限制, 以Gas為單位測量, 如果Gas耗盡, 則消息無法執行, 並且執行的任何效果都將被還原
  • GasFeeCap : 發送方願意為每個GasUnit支付的最大token price, 已將content包含在block中, 以attoFIL/Gas為單位, 發送時, 必須具有最少的GasFeeCap * GasLimit餘額, GasFeeCap可以防止BaseFee出現較大的意外波動
  • GasPremium : 支付給礦工的優先費, 由GasFeeCap限制
  • Overestimation burn : 當GasLimit和GasUsage之間的差異較大時, 燃燒額外Gas會增加

發件人的一條message總費用為 :
(GasUsage BaseFee)[For Burned] + (GasLimit GasPremium)[For miner] + (OverEstimationBurn * BaseFee)
太低的GasFeeCap會導致礦工不想挖

Additional materials

建立在libp2p (網路, 地址, 消息分發), IPLD(數據格式, 編碼和內容循址的數據結構), IPFS(數據傳輸), multiformats(支援未來的檔案格式)


#filecoine #blockchain #miner







Related Posts

Python -「快速」算出兩排序數列中重複的次數

Python -「快速」算出兩排序數列中重複的次數

Fibonacci sequence

Fibonacci sequence

關於 Closure / lexical scope

關於 Closure / lexical scope


Comments